﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum ВидыНормативовНоменклатуры
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"6e36e54f-3e6e-4012-b003-21cfd43e960f\", \"Представление\":\"Номенклатура\"}")]
		Номенклатура = 0,
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"ccfe1bcb-fb8d-4f5c-8e5d-d77a38fcd8ee\", \"Представление\":\"Узел\"}")]
		Узел = 1,
		[EnumMember(Value = "{\"Ссылка\":\"72f041e4-32a2-4db9-a7fd-a8c14e59fc40\", \"Представление\":\"АвтоподборНоменклатуры\"}")]
		АвтоподборНоменклатуры = 2,//Автоподбор номенклатуры
		[EnumMember(Value = "{\"Ссылка\":\"5618f0d3-51e7-4b65-a7a7-3eb00e9bdbca\", \"Представление\":\"АвтоподборХарактеристики\"}")]
		АвтоподборХарактеристики = 3,//Автоподбор характеристики
	}
	public static partial class ВидыНормативовНоменклатуры_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid Номенклатура = new Guid("cf2103b0-3ed4-0f96-4012-3e6e6e36e54f");
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid Узел = new Guid("7ad75d8e-fc38-eed8-4f5c-fb8dccfe1bcb");
		public static readonly Guid АвтоподборНоменклатуры = new Guid("c1a8fda7-594e-40fc-4db9-32a272f041e4");//Автоподбор номенклатуры
		public static readonly Guid АвтоподборХарактеристики = new Guid("b03ea7a7-9b0e-cadb-4b65-51e75618f0d3");//Автоподбор характеристики
		public static ВидыНормативовНоменклатуры Получить(this ВидыНормативовНоменклатуры Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыНормативовНоменклатуры Получить(this ВидыНормативовНоменклатуры Значение, Guid Ссылка)
		{
			if(Ссылка == Номенклатура)
			{
				return ВидыНормативовНоменклатуры.Номенклатура;
			}
			else if(Ссылка == Узел)
			{
				return ВидыНормативовНоменклатуры.Узел;
			}
			else if(Ссылка == АвтоподборНоменклатуры)
			{
				return ВидыНормативовНоменклатуры.АвтоподборНоменклатуры;
			}
			else if(Ссылка == АвтоподборХарактеристики)
			{
				return ВидыНормативовНоменклатуры.АвтоподборХарактеристики;
			}
			return ВидыНормативовНоменклатуры.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыНормативовНоменклатуры Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыНормативовНоменклатуры Значение)
		{
			switch (Значение)
			{
				case ВидыНормативовНоменклатуры.Номенклатура: return Номенклатура;
				case ВидыНормативовНоменклатуры.Узел: return Узел;
				case ВидыНормативовНоменклатуры.АвтоподборНоменклатуры: return АвтоподборНоменклатуры;
				case ВидыНормативовНоменклатуры.АвтоподборХарактеристики: return АвтоподборХарактеристики;
			}
			return Guid.Empty;
		}
	}
}